/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package upeu.edu.dao;

import java.util.ArrayList;
import java.util.List;
import upeu.edu.to.AlumnoTo;
import upeu.edu.util.DBConn;

/**
 *
 * @author Alumno
 */
public class AlumnoDao extends DBConn {

    public int insertarAlumno(AlumnoTo to) {

        int i = 0;
        try {
            getConexionDB();
            ps = con.prepareStatement("INSERT INTO alumno.cp_alumno(nombres, appat, apmat, telefono, direccion, eap)"
                    + "VALUES (?, ?, ?, ?, ?, ?);");

            ps.setString(1, to.getNombres());
            ps.setString(2, to.getAppat());
            ps.setString(3, to.getApmat());
            ps.setString(4, to.getTelefono());
            ps.setString(5, to.getDireccion());
            ps.setString(6, to.getEap());

            if (ps.executeUpdate() == 1) {
                i = 1;
                System.out.println("Insertado!!!");
            }
        } catch (Exception e) {
            System.out.println("cat" + e.getMessage());
        }

        return i;
    }

    public AlumnoTo buscarAlumnoId(String idAlumno) {
        AlumnoTo alumno = new AlumnoTo();
        try {
            getConexionDB();
            ps = con.prepareStatement("SELECT * FROM alumno.cp_alumno where id_alumno");
            ps.setInt(1, Integer.parseInt(idAlumno));
            rs = ps.executeQuery();
            if (rs.next()) {
                alumno.setId_alumno(rs.getInt("id_alumno"));
                alumno.setNombres(rs.getString("nombres"));
                alumno.setAppat(rs.getString("appat"));
                alumno.setApmat(rs.getString("apmat"));
                alumno.setTelefono(rs.getString("telefono"));
                alumno.setDireccion(rs.getString("direccion"));
                alumno.setEap(rs.getString("eap"));
            }
        } catch (Exception e) {
        }
        return alumno;
    }

    public List buscarDatos(String datos) {

        List lista = new ArrayList();

        try {
            getConexionDB();
            ps = con.prepareStatement("SELECT * FROM alumno.cp_alumno where nombres like ?");
            ps.setString(1, "%" + datos + "%");
            rs = ps.executeQuery();
            while (rs.next()) {           //el rs.next evalua si existe un registro posterior
                AlumnoTo alumno = new AlumnoTo();
                alumno.setId_alumno(rs.getInt("id_alumno"));
                alumno.setNombres(rs.getString("nombres"));
                alumno.setAppat(rs.getString("appat"));
                alumno.setApmat(rs.getString("apmat"));
                alumno.setTelefono(rs.getString("telefono"));
                alumno.setDireccion(rs.getString("direccion"));
                alumno.setEap(rs.getString("eap"));

                lista.add(alumno);

            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return lista;
    }

    public List reporteAlumno() {   //list:return del mismo tipo
        List reporte = new ArrayList();
        AlumnoTo to;
        try {
            getConexionDB();
            ps = con.prepareStatement("SELECT * FROM alumno.cp_alumno");
            rs = ps.executeQuery();
            while (rs.next()) {
                to = new AlumnoTo();
                to.setId_alumno(rs.getInt("id_alumno"));
                to.setNombres(rs.getString("nombres"));
                to.setAppat(rs.getString("appat"));
                to.setApmat(rs.getString("apmat"));
                to.setTelefono(rs.getString("telefono"));
                to.setDireccion(rs.getString("direccion"));
                to.setEap(rs.getString("eap"));
                reporte.add(to);
                System.out.println("Reportado..!");

            }
        } catch (Exception e) {
            System.out.println("Error en Reporte alumno..." + e.getMessage());
        } finally {
            getCerrarConexion();
        }
        return reporte;
    }

    public void eliminarRegistroAlumno(int id_alumno) {
        try {
            getConexionDB();
            ps = con.prepareStatement("Delete FROM alumno.cp_alumno WHERE id_alumno=? ");
            ps.setInt(1, id_alumno);

            if (ps.executeUpdate() == 1) {

                System.out.println(" Eliminado");
            }
        } catch (Exception e) {
        } finally {
            getCerrarConexion();
        }
    }

    public void actualizarDatosAlumno(AlumnoTo to, int id_alumno) {
        /*
         * int operacion =0; int i=0;
         */
        try {
            getConexionDB();
            ps = con.prepareStatement("update alumno.cp_alumno set nombres=?, appat=?,apmat=?, telefono=?, direccion=?, eap=? "
                    + "WHERE id_alumno=?");
            ps.setString(1, to.getNombres());
            ps.setString(2, to.getAppat());
            ps.setString(3, to.getApmat());
            ps.setString(4, to.getTelefono());
            ps.setString(5, to.getDireccion());
            ps.setString(6, to.getEap());
            ps.setInt(7, id_alumno);

            /*
             * operacion=
             */
            ps.executeUpdate();

            System.out.println("Actualizado");

        } catch (Exception e) {
        } finally {
            getCerrarConexion();
        }
        /*
         * if (operacion==1) return true; else return false;
         */
    }
}